package com.scm.biz.service;

import java.util.List;

import com.scm.biz.bean.Factory;
import com.scm.biz.dto.FactoryDto;
import com.scm.biz.query.FactoryQuery;
import com.scm.biz.result.FactoryResult;
import com.scm.core.bean.exp.UfdmException;

/**
 * 工厂模块业务层接口
 * @author 张乐锋
 *
 */
public interface FactoryService  {
	
	/**
	 * 根据查询条件检索符合要求的工厂列表
	 * @param factoryQuery
	 * @return
	 */
	public List<FactoryResult> getFactoryList(FactoryQuery factoryQuery);
	public List<Factory> selectList(FactoryQuery factoryQuery);
	
	/**
	 * 根据工厂Id查询到工厂详情
	 * @param factoryId 要查询详情的工厂Id
	 * @return
	 */
	public FactoryResult getFactoryDetailById(Long factoryId);

	/**
	 * 插入工厂记录
	 * @param factory 要插入的工厂bean对象
	 * @return
	 */
	public boolean insertFactory(FactoryDto factoryDto) throws UfdmException;
	
	/**
	 * 根据工厂Id删除工厂与相关记录
	 * @param factoryId
	 * @return
	 */
	public boolean deleteFactoryById(Long factoryId);
	
	/**
	 * 修改工厂与相关记录
	 * @param factoryDto
	 * @return
	 */
	public boolean updateFactoryById(FactoryDto factoryDto) throws UfdmException;
	
	/**
	 * 修改工厂的评估报告
	 * @return
	 */
	public boolean updateEstimateReport(Factory factory);
	
	/**
	 * 获取工厂列表总记录数
	 * @param FactoryQuery
	 * @return
	 */
	public int getTotal(FactoryQuery factoryQuery);
	
	/**
	 * 工厂是否有过订单
	 * @param id
	 * @return
	 */
	public boolean haveOrder(Integer id);
	
	/**
     * 根据评估报告文件名称查出原文件名
     * @param estimateReport
     * @return
     */
    public String selectOriginName(String estimateReport);
    
    /**
     * 工厂名是否存在
     * @param name
     * @return
     */
    public boolean haveName(String name,Long id);
}
